import { get, post } from '@/assets/js/request'
const baseUrl = '/device'
/**
 * 获取视频设备列表
 * @returns promise
 */
export const getVideoDevice = (params = {}) => {
    return get(`${baseUrl}/videoDeviceList`, params)
}
/**
 * 获取视频流（获取了视频流如果不看了一定要调用关闭视频流接口）
 * @returns promise
 * @param {Number} number 设备号
 */
export const getRtmp = (params = {}) => {
    return get(`${baseUrl}/getRtmp`, params)
}
/**
 * 获取视频流（获取了视频流如果不看了一定要调用关闭视频流接口）
 * @returns promise
 * @param {Number} number 设备号
 */
export const closeRtmp = (number) => {
    return post(`${baseUrl}/closeRtmp`, { number })
}

/**
 * 产品列表
 * @returns promise
 * params说明：
 * deviceClassId	设备分类ID
 */
export const getProduct = (params = {}) => {
    return get(`${baseUrl}/productList`, params)
}
/**
 * 设备分类列表
 * @returns promise
 * params说明：
 * type	系统分类:1 视频中心2 消防中心 3安防中心 4 能源中心 5 环境中心
 */
export const getDeviceClass = (params = {}) => {
    return get(`${baseUrl}/deviceClassList`, params)
}
/**
 * 设备类型列表
 * @returns promise
 * params说明：
 * deviceClassId	设备分类ID
 */
export const getDeviceType = (params = {}) => {
    return get(`${baseUrl}/deviceTypeList`, params)
}
/**
 * 设备分页列表
 * @returns promise
 * @param {Object} params
 * params说明
 * page	必填	第几页
 * limit	必填	每页多少条
 * name	选填	设备名称 模糊查询
 * number	选填	设备号 模糊查询
 * currentState	选填	设备当前状态：1 正常 2 报警 3 离线 4 故障
 * deviceClassify	选填	系统分类:1 视频中心2 消防中心 3安防中心 4 能源中心 5 环境中心
 * deviceClass	选填	设备分类id
 */
export const getDeviceList = (params = {}) => {
    return get(`${baseUrl}/deviceListPage`, params)
}

/**
 * 设备详情
 * @returns promise
 * params说明：
 * id	必填	设备ID
 */
export const getDeviceDetail = (params = {}) => {
    return get(`${baseUrl}/deviceDetails`, params)
}

/**
 * 设备删除
 * @returns promise
 * params说明：
 * id	必填	设备ID
 */
export const deleteDevice = (params = {}) => {
    return post(`${baseUrl}/deviceDel`, params)
}

/**
 * 设备新增/编辑
 * @returns promise
 * params说明：
 * id	必填	设备ID
 */
export const addOrUpdateDevice = (params = {}) => {
    let url = `${baseUrl}/deviceAdd`
    if (params.id) {
        url = `${baseUrl}/deviceUpdate`
    }
    return post(url, params)
}
/**
 * 更新设备
 * @returns promise
 * params说明：
 * id	必填	设备ID
 */
export const addUpdateDevice = (params = {}) => {
    return post(`${baseUrl}/deviceUpdate`, params)
}
/**
 * 获取图片
 * @returns promise */
export const getImageBase64 = (params = {}) => {
    return post('/get_base64img', params)
}
/**
 * 应用规则列表
 * @returns promise */
export const getQueryArgs = (params = {}) => {
    return post('/query_args', params)
}
/**
 * 应用规则新增/编辑
 * @returns promise */
export const addOperation = (params = {}) => {
    return post('/judge_operation', params)
}
/**
 * 应用规则算法
 * @returns promise */
export const getAlgorithmList = (params = {}) => {
    return post('/algorithm_list', params)
}
/**
 * 目标对象选择列表
 * @returns promise */
export const getObjectList = (params = {}) => {
    return post('/object_list', params)
}
/**
 * 算法规则手动停止
 * @returns promise */
export const getDockerStop = (params = {}) => {
    return post('/docker_stop', params)
}
/**
 * 算法规则手动开启
 * @returns promise */
export const getDockerStart = (params = {}) => {
    return post('/docker_start', params)
}
/**
 * 算法规则手动停止删除
 * @returns promise */
export const deleteStop = (params = {}) => {
    return post('/delete_stop', params)
}
/**
 * 算法商城
 * @returns promise */
export const getAlgorithmShopList = (params = {}) => {
    return get('/algorithm_shop_list', params)
}
/**
 * 加载商城算法
 * @returns promise */
export const setAuthorization = (params = {}) => {
    return post('/authorization', params)
}
/**
 * 加载驱动
 * @returns promise */
export const getdownloadDrive = (params = {}) => {
    return post('/upload/download_drive', params)
}
/**
 * 获取局域网内摄像头ip
 * @returns promise */
export const getOnvifCameraIp = () => {
    return get('/device/get_onvif_camera_ip')
}
/**
 * 校验模型是否下载完成
 * @returns promise */
export const getCheckmodelFile = (params = {}) => {
    return post('/model_file', params)
}
/**
 * 升级算法
 * @returns promise
 */
export const updateAlgorithm = (params) => {
    return post('/update_algorithm', params)
}
